package com.zhongbo.java.fast.order.util;

import cn.hutool.core.date.DateTime;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;

/**
 * 说明：
 *
 * @author 钟波dellNotebook
 * @since 2025年03月27日 星期四 10:46:55
 */
public class LocalDateTimeUtil {

    /**
     * 获取LocalDateTime对象的时间戳
     *
     * @param localDateTime 时间对象
     * @return 时间戳
     */
    public static long getTimestamp(LocalDateTime localDateTime) {
        // 将 LocalDateTime 转换为特定时区的 ZonedDateTime
        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.systemDefault());

        // 将 ZonedDateTime 转换为 Instant
        Instant instant = zonedDateTime.toInstant();

        // 获取时间戳（毫秒）
        long timestamp = instant.toEpochMilli();

        // 输出时间戳
        // System.out.println("时间戳（毫秒）: " + timestamp);
        return timestamp;

    }

    /**
     * 日期格式转换为 LocalDateTime
     *
     * @param dateTime 时间对象
     * @return LocalDateTime
     */
    public static LocalDateTime convert(DateTime dateTime) {
        // 将Joda-Time的DateTime转换为Java Time的LocalDateTime
        return LocalDateTime.ofInstant(dateTime.toInstant(), ZoneId.systemDefault());
    }

    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        long currentTimeMillis = System.currentTimeMillis();
        long timestamp = getTimestamp(now);
        System.out.println("timestamp = " + timestamp + " currentTimeMillis = " + currentTimeMillis);
    }
}
